# import requests
# import json
# system = requests.get('https://192.168.0.50/redfish/v1/Chassis/System.Embedded.1/Power/PowerControl',verify=False,auth=('root','uuerp'))
# systemData = system.json()
# print(systemData)
# ##print "Consumed power: {}".format(systemData[u'PowerConsumedWatts'])
# ##print "Average reading: 
# # {}".format(systemData[u'PowerMetrics'][u'AverageConsumedWatts'])
# # print "Max reading: 
# # {}".format(systemData[u'PowerMetrics'][u'MaxConsumedWatts'])
# # 21 Implementation of the DMTF Redfish API on Dell EMC PowerEdge Servers
# # print "Min reading: 
# # {}".format(systemData[u'PowerMetrics'][u'MinConsumedWatts'])


#!/usr/bin/env python
"""
This runs a command on a remote host using SSH. At the prompts enter hostname,
user, password and the command.
"""
import pexpect
import os
#user: ssh 主机的用户名
#host：ssh 主机的域名
#password：ssh 主机的密码
#command：即将在远端 ssh 主机上运行的命令
def ssh_command (user, host, password, command):
    """
    This runs a command on the remote host. This could also be done with the
    pxssh class, but this demonstrates what that class does at a simpler level.
    This returns a pexpect.spawn object. This handles the case when you try to
    connect to a new host and ssh asks you if you want to accept the public key
    fingerprint and continue connecting.
    """
    ssh_newkey = 'Are you sure you want to continue connecting'
    # 为 ssh 命令生成一个 spawn 类的子程序对象.
    child = pexpect.spawn('ssh -l %s %s %s'%(user, host, command))
    i = child.expect([pexpect.TIMEOUT, ssh_newkey, 'password: '])
    # 如果登录超时，打印出错信息，并退出.
    if i == 0: # Timeout
        print('ERROR!')
        print('SSH could not login. Here is what SSH said:')
        print(child.before, child.after)
        return None
    # 如果 ssh 没有 public key，接受它.
    if i == 1: # SSH does not have the public key. Just accept it.
        child.sendline ('yes')
        child.expect ('password: ')
        i = child.expect([pexpect.TIMEOUT, 'password: '])
        if i == 0: # Timeout
            print('ERROR!')
            print('SSH could not login. Here is what SSH said:')
            print(child.before, child.after)
            return None
    # 输入密码.
    child.sendline(password)
    return child
def main ():
    # 获得用户指定 ssh 主机域名.
    host = "192.1680.60"
    # 获得用户指定 ssh 主机用户名.
    user = "root"
    # 获得用户指定 ssh 主机密码.
    password = "asd1234567@"
    # 获得用户指定 ssh 主机上即将运行的命令.
    command = "esxcli vm process list"
    child = ssh_command (user, host, password, command)
    # 匹配 pexpect.EOF
    child.expect(pexpect.EOF)
    # 输出命令结果.
    print(child.before)
if __name__ == '__main__':
    try:
        main()
    except Exception as e:
        print(str(e))
        ##traceback.print_exc()
        print("error")
        os._exit(1)